package com.yuanqi.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 销售订单明细
 * @TableName sales_order_item
 */
@TableName(value ="sales_order_item")
@Data
public class SalesOrderItem implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 销售订单ID
     */
    private Long soId;

    /**
     * 行号
     */
    private Integer lineNo;

    /**
     * SKU主键
     */
    private String skuId;

    /**
     * 商品ID（用于处理临时SKU）
     */
    private Long productId;

    /**
     * 订购数量
     */
    private BigDecimal qty;

    /**
     * 单价（含/不含税取决于头）
     */
    private BigDecimal price;

    /**
     * 税率%
     */
    private BigDecimal taxRate;

    /**
     * 行金额
     */
    private BigDecimal amount;

    /**
     * 已分配/占用数量
     */
    private BigDecimal allocatedQty;

    /**
     * 已发货数量
     */
    private BigDecimal shippedQty;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    // ====== 前端显示字段（不映射到数据库） ======

    /** 商品名称 */
    @TableField(exist = false)
    private String productName;

    /** 商品规格 */
    @TableField(exist = false)
    private String productSpec;

    /** 商品单位 */
    @TableField(exist = false)
    private String productUnit;

    /** SKU编码 */
    @TableField(exist = false)
    private String skuCode;
}
